

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JSeparator;
import javax.swing.JScrollBar;
import java.awt.List;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;
/**
 * Fenêtre de saisie d'un ouvrage 
 * Code du JFrame généré par Window Builder/Swing Designer.
 * @author IUT,  A.Culet 
 * @version 1.0 
 */
public class VueSaisieOuvrage extends Vue {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField textFieldIsbn ;
	private JTextField textFieldTitre;
	private JTextField textFieldDate;
	private JTextField textFieldEditeur;
	private JTextField textFieldNom;
	private JTextField textFieldPrenom;
	private List listAuteurs;
	private List listMots;
	private JButton btnEnregistrer;
	private JButton btnAjouter;
	private JButton button_3;
	
	/**
	 * Create the frame.
	 */
	public VueSaisieOuvrage(Controleur controleur) {
		super(controleur);
		setTitle("Enregistrement d'un nouvel ouvrage");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		setBounds(100, 100, 504, 690);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblNewLabel = new JLabel("Isbn");
		lblNewLabel.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel.setBounds(87, 33, 61, 15);
		contentPane.add(lblNewLabel);
		
		textFieldIsbn = new JTextField();
		textFieldIsbn.setBounds(190, 30, 137, 19);
		contentPane.add(textFieldIsbn);
		textFieldIsbn.setColumns(10);
		
		JLabel lblNewLabel_1 = new JLabel("Titre");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel_1.setBounds(87, 75, 61, 15);
		contentPane.add(lblNewLabel_1);
		
		textFieldTitre = new JTextField();
		textFieldTitre.setBounds(190, 72, 198, 19);
		contentPane.add(textFieldTitre);
		textFieldTitre.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("Date Edition (MMAAAA)");
		lblNewLabel_2.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel_2.setBounds(0, 126, 154, 33);
		contentPane.add(lblNewLabel_2);
		
		textFieldDate = new JTextField();
		textFieldDate.setBounds(190, 132, 114, 19);
		contentPane.add(textFieldDate);
		textFieldDate.setColumns(10);
		
		JLabel lblEditeur = new JLabel("Editeur");
		lblEditeur.setHorizontalAlignment(SwingConstants.RIGHT);
		lblEditeur.setBounds(87, 101, 61, 15);
		contentPane.add(lblEditeur);
		
		textFieldEditeur = new JTextField();
		textFieldEditeur.setColumns(10);
		textFieldEditeur.setBounds(190, 102, 198, 19);
		contentPane.add(textFieldEditeur);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(0, 170, 496, 2);
		contentPane.add(separator);
		
		JLabel lblNewLabel_3 = new JLabel("Nom auteur");

		lblNewLabel_3.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel_3.setBounds(77, 183, 81, 14);
		contentPane.add(lblNewLabel_3);
		
		textFieldNom = new JTextField();
		textFieldNom.setBounds(190, 181, 114, 20);
		contentPane.add(textFieldNom);
		textFieldNom.setColumns(10);
		
		textFieldPrenom = new JTextField();
		textFieldPrenom.setBounds(190, 211, 114, 20);
		contentPane.add(textFieldPrenom);
		textFieldPrenom.setColumns(10);
		
		JLabel lblNewLabel_4 = new JLabel("Prenom auteur");

		lblNewLabel_4.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel_4.setBounds(56, 213, 102, 14);

		contentPane.add(lblNewLabel_4);
		
		JLabel lblMot = new JLabel("Mots-cles disponibles");
		lblMot.setHorizontalAlignment(SwingConstants.CENTER);
		lblMot.setBounds(28, 483, 130, 14);
		contentPane.add(lblMot);
		
		JSeparator separator_2 = new JSeparator();
		separator_2.setBounds(0, 410, 496, 2);
		contentPane.add(separator_2);
		
		btnAjouter= new JButton("Ajouter");
		btnAjouter.setBounds(345, 179, 89, 23);
		contentPane.add(btnAjouter);
		btnAjouter.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		if (textFieldNom.getText()==null && textFieldPrenom.getText()==null){
			
		}
		else{
		String nom = textFieldNom.getText();
		String prenom = textFieldPrenom.getText();
		getControleur().ajouterAuteur(nom,prenom);
		}
		}
	});
		JButton btnAnnuler_1 = new JButton("Annuler");
		btnAnnuler_1.setBounds(345, 209, 89, 23);
		contentPane.add(btnAnnuler_1);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(0, 576, 496, 2);
		contentPane.add(separator_1);
		
		btnEnregistrer = new JButton("Enregistrer");
		btnEnregistrer.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			String isbn = textFieldIsbn.getText();
			String titre = textFieldTitre.getText();
			String editeur = textFieldEditeur.getText();
			String dateEdition = textFieldDate.getText();
			String[] lesAuteurs = listAuteurs.getItems();
			String[] lesMots = listMots.getItems();
			getControleur().nouvOuvrage(isbn, titre, lesAuteurs, editeur, dateEdition, lesMots);
			}
	});
		btnEnregistrer.setBounds(108, 607, 114, 23);
		contentPane.add(btnEnregistrer);
		
		button_3 = new JButton("Annuler");
		button_3.setBounds(282, 607, 114, 23);
		contentPane.add(button_3);
		button_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueSaisieOuvrage.this);}
		});
		
		JLabel lblSlectionnerUnAuteur = new JLabel("Auteur(s) attribués à l'ouvrage");
		lblSlectionnerUnAuteur.setHorizontalAlignment(SwingConstants.RIGHT);
		lblSlectionnerUnAuteur.setBounds(28, 310, 130, 23);
		contentPane.add(lblSlectionnerUnAuteur);
		
		listAuteurs = new List();
		listAuteurs.setBounds(191, 286, 136, 72);
		contentPane.add(listAuteurs);


		
		listMots = new List();
		listMots.setBounds(169, 448, 237, 91);
		contentPane.add(listMots);
		
		JScrollBar scrollBar = new JScrollBar();
		scrollBar.setBounds(389, 448, 17, 91);
		contentPane.add(scrollBar);
	}
	
	public void alimenteListeMot(LinkedHashMap<String, MotsCles> motsCles) {
		
		Set<String> cles = motsCles.keySet();
		Iterator<String> it = cles.iterator();
		while (it.hasNext()){
		   String cle = (String) it.next(); // tu peux typer plus finement ici
		   MotsCles valeur = motsCles.get(cle); // tu peux typer plus finement ici
		   String motcle = valeur.getMot();
		   listMots.add(motcle);
		}
	}
	
	public void alimenteListeAuteur(HashMap<String, Auteur> auteur) {
		
		Set<String> cles = auteur.keySet();
		Iterator<String> it = cles.iterator();
		while (it.hasNext()){
		   String cle = (String) it.next(); // tu peux typer plus finement ici
		   Auteur valeur = auteur.get(cle); // tu peux typer plus finement ici
		   String auteurs = valeur.getAuteur();
		   System.out.println(valeur.getAuteur());
		   listAuteurs.add(auteurs);
		}
	}
	


	public void setEtat (int etat){
		switch (etat) {
		case initiale: {
			//buttonEnreg.setEnabled(true);
			button_3.setEnabled(true);
			break;
			}
		}
	}


}
